gusucode.com > 现代通信系统——使用MATLAB(+全部程序) > 现代通信系统——使用MATLAB(+全部程序)/现代通信系统——使用MATLAB(+全部程序)/Matlab 程序/Chapter10/programs/menu/convmenu.m

    function rarg = convmenu (action);
% generates menu

global Buttons;
global menuwinh;
global buttonh;
global MenuWinPos;


Buttons = 6;
ButtonText1 = 'NRZ Rectangular * NRZ Rectangular';
ButtonText2 = 'Raised-Cosine * Raised-Cosine';
ButtonText3 = 'Root-RC * Root-RC';
ButtonText4 = 'NRZ Rectangular * Butterworth';
ButtonText5 = 'Menu Pulse Shape';
ButtonText6 = 'Main Menu';



if nargin < 1                                           % no argument -> init 
  action = 'init';
end;


% -----------------------------------------------------------------
% init
% initialize variables and open window


if strcmp (action, 'init')

  % constants and definitions

     set(0,'Units','pixels');
   scnsize = get(0,'ScreenSize');

  MenuWinPos  = [10 (scnsize(4) - (Buttons*28+50)-40)];  % window position

  convmenu ('openmenuwin');                                % open window

end;


% -----------------------------------------------------------------
% openmenuwin
% 

if strcmp (action, 'openmenuwin')
 
  menuwinh = figure ('Color', 'white', ...              % open window
    'Position', [MenuWinPos 230 (Buttons*28+50)], ... 
    'Name', 'Tutorial', ...
    'NumberTitle', 'off', ...
    'MenuBar', 'none', ...
    'Resize', 'off', ...
    'UserData', 'convmenu');

  uicontrol (menuwinh, ...
    'Style', 'text', ...
    'Position', [5 (Buttons*28+10) 230 25], ...
    'BackgroundColor', 'white', ...
    'HorizontalAlignment', 'center', ...
    'String', 'Convolution');


  for k = 1:Buttons
    ypos = (Buttons- k) * 28 + 10;
    ButtonTextString = eval (['ButtonText'  num2str(k)]);
    CallBackFunction = ['Button' num2str(k)];
    createbutton = ['buttonh(' num2str(k) ') = uicontrol (menuwinh, ' ...
                        '''Position'', [5 ' num2str(ypos) ' 220 22], ' ...
                         '''String'', ''' ButtonTextString ''', ' ...
                         '''BackgroundColor'', ''white'', ' ...
                         '''CallBack'', ''convmenu (''''' CallBackFunction ''''')'');'];
   eval (createbutton);
  end;
  clear createbutton ypos ButtonTextStr CallBackFunction;
end;


% -----------------------------------------------------------------
% Button1


if strcmp (action, 'Button1')

  delete(menuwinh);

  % close all Matlab windows
  delete(get (0, 'Children'));

  convnrz;
  convmenu;

end;

% -----------------------------------------------------------------
% Button2


if strcmp (action, 'Button2')

  delete(menuwinh);

  % close all Matlab windows
  delete(get (0, 'Children'));

  convnyq(0);
  convmenu;

end;


% -----------------------------------------------------------------
% Button3


if strcmp (action, 'Button3')

  delete(menuwinh);

  % close all Matlab windows
  delete(get (0, 'Children'));

  convwny(0);
  convmenu;

end;


% -----------------------------------------------------------------
% Button4


if strcmp (action, 'Button4')

  delete(menuwinh);

  % close all Matlab windows
  delete(get (0, 'Children'));

  bwthui;
  convmenu;

end;


% -----------------------------------------------------------------
% Button5


if strcmp (action, 'Button5')

  delete(menuwinh);

  % close all Matlab windows
  delete(get (0, 'Children'));

  pshapemenu;

end;


% -----------------------------------------------------------------
% Button6


if strcmp (action, 'Button6')

  delete(menuwinh);

  % close all Matlab windows
  delete(get (0, 'Children'));

DigModTutorial;

end;